package com.doitedu.core

import com.doitedu.utils.SparkUtil
import org.apache.spark.rdd.RDD

/**
 * @Date: 22.6.28 
 * @Author: HANGGE
 * @qq: 598196583
 * @Tips: 学大数据 ,到多易教育
 * @Description:
 * 加hdfs上的文件数据  统计文件中各个单词出现的次数
 */
object C03RDD模型 {

  def main(args: Array[String]): Unit = {
    val sc = SparkUtil.getSparkContext("hdfs_wc")
    // 加载HDFS上的数据
    /**
     * 对加载到的数据进行处理
     *   经过算子不断的处理  数据在不断的变化
     *   统一返回的类型是RDD类型 : RDD是spark编程的基本数据抽象
     *
     *   RDD有没有必要存储结果数据
     */

      //转换算子
    val data: RDD[String] = sc.textFile("hdfs://linux01:8020/spark/data/wc")
    val fltMapData: RDD[String] = data.flatMap(_.split("\\s+"))
    val wordAndOne: RDD[(String, Int)] = fltMapData.map((_, 1))
    val grouped: RDD[(String, Iterable[(String, Int)])] = wordAndOne.groupBy(_._1)

    //grouped.foreach(e=>println(e))  // 行动算子

    sc.stop()



  }
}
